package com.sweetcircle.annotation;

import org.springframework.web.bind.annotation.Mapping;

import java.lang.annotation.*;

@Target({ElementType.METHOD, ElementType.TYPE})  // 可以在方法 和 类 使用
@Retention(RetentionPolicy.RUNTIME)  // 运行时
@Documented
// Java注释标记，用于指示该注解将被包含在Java文档中  @Documented是一个Java注解，用于指示该注解应该被包含在生成的Java文档中。当开发人员在编写注解时使用@Documented标记时，它会告诉文档生成工具将该注解的信息包含在Java文档中。这对于阅读文档的其他开发人员很有用，因为他们可以在文档中看到该注解的用途和作用。
@Mapping
// @Mapping是一个Spring框架的注解，用于将HTTP请求映射到控制器方法上。它可以用于注解@Controller类中的方法，使得当一个特定的HTTP请求到达应用程序时，能够调用相应的控制器方法进行处理。@Mapping注解可以指定HTTP请求的方法（GET、POST、PUT、DELETE等）、请求的URL路径、请求的参数、请求头等信息，以及请求的响应类型等。使用@Mapping注解可以使代码更加简洁、易于维护，并且能够更好地组织应用程序的请求处理逻辑。
public @interface GlobalInterceptor {  // 全局拦截器注解  AOP切面

    /**
     * 校验登录
     *
     * @return
     */
    boolean checkLogin() default false;

    /**
     * 校验参数
     *
     * @return
     */
    boolean checkParams() default false;

    /**
     * 校验管理员
     *
     * @return
     */
    boolean checkAdmin() default false;
}
